Telecommunication networks are made up of various “switches” interconnected by communication links. These links comprise two separate “logical” networks. One network carries voice and data, the other signaling and control information (“signaling network”). Switches communicate with each other over the signaling network to set up calls and other services.
Networks and switches are engineered to carry a certain number of active calls and to process requests for calls and services at a certain rate (hereafter referred to as the engineered capacity or just capacity). Occasionally, they might experience traffic that exceeds their engineered capacity. When this occurs a switch or network is said to be “overloaded”, or in an “overload condition” or “congested” (collectively referred to sometimes as just “overload”).
Controls are required to prevent or reduce overload in order to maintain a switch's throughput and quality of service at an acceptable level. Switches that are designed using appropriate overload controls are less expensive when compared to the less desired option of over-provisioning resources (e.g., building switches or networks with excess capacity to handle occasional overloads).
Within each switch there exists one or more control units or processors (collectively referred to as “processor(s)”) that process incoming and outgoing signaling traffic (e.g., voice, data, etc . . . ). These processors can become overloaded due to sudden increases in signaling load and, therefore, need overload controls. Such controls must react to a large number of requests to avoid overwhelming the processor. Switches (and their respective processors) may experience signaling overload conditions even when voice and data networks are not congested. Ideally, the performance of a switch should be maintained at a level that is obtained at the engineered capacity.
Generally, there are two types of responses used by switches to control overload conditions. First, a switch may invoke remote overload controls by signaling neighboring switches that it is in an overload condition. Presumably these neighboring switches then limit signaling traffic to the overloaded switch or direct their traffic elsewhere. Although procedures exist to deal with such an “inter-switch” overload control response, in practice many deployed switches do not implement these procedures. Therefore, any practical solution to preventing or controlling overload or congestion-like conditions cannot necessarily depend on the behavior of neighboring switches.
The second type of response to an overload condition is for a switch to locally protect its own processing resources by selectively “throttling” (i.e., reducing, limiting, controlling) signaling messages. Each request to a switch, either to establish or release a connection, or to request a different type of service, usually results in a sequence of several messages, each of which must be processed in order for the request to be fulfilled. The process of throttling messages, therefore, may be carried out by throttling messages that initiate service requests. This reduces overload by eliminating future signaling messages.
Earlier work on overload control focused on preserving the performance of a switch under sustained overload conditions. Due to the increased number of service types in modern telecommunication networks and the introduction of mobile networks that often result in fast changing network “hot spots”, overload control techniques must react quickly to be effective.
Presently, such controls are not quick enough to relieve overload or congestion-like conditions. In addition to being capable of reacting quickly to an overload condition, effective overload controls should also be highly “robust”. That is, when a switch's processor is upgraded (i.e., to process faster messages) or when a switch's software is upgraded it is desirable to avoid having to reconfigure the switch's overload controls. The alternatives, that is re-configuring the switch with an alternative overload control technique or adopting an entirely different one, are highly undesirable.
Realizing they needed a fast and robust overload control technique the present inventors considered a number of existing techniques but found them all to be lacking in robustness or responsiveness.
One technique known as Occupancy demonstrated sufficient robustness but lacked the speed needed to eliminate real-time overload conditions. Nonetheless, because this technique provides a framework for introducing the techniques envisioned by the present invention it is worth discussing briefly. Occupancy is a so-called “processor-occupancy” based technique. It should be understood that the present invention also focuses on relieving an overload condition that presents itself to a processor.
A processor's occupancy, ρ, is defined as the percentage of time within a given measurement interval that a processor is busy processing tasks. Processor occupancy (hereafter “occupancy” for short) is a dimensionless quantity, which makes it relatively system independent.
In order to determine the amount of throttling needed to remove an overload condition, Occupancy first sets a threshold or target processor occupancy ρt arg. This threshold occupancy is then compared to an estimated processor occupancy at a particular measurement time. More specifically, using Occupancy, if an estimated processor occupancy at a measurement time n (given by the average of the last processor occupancies) is below ρt arg, the amount of traffic allowed to be received for processing by a processor (hereafter referred to as “fraction allowed” or “f” for short because it is some fraction of the incoming traffic which can be processed by a fully loaded switch) is increased. If the estimated processor occupancy is greater than the threshold occupancy, then the fraction allowed, f, is decreased. A feedback control function for the Occupancy technique is given by:
                              f                      (                          n              +              1                        )                          =                  {                                                                                          f                    min                                    ,                                                                                                                        ϕ                      n                                        ⁢                                          f                      n                                                        <                                      f                    min                                                                                                                        1                  ,                                                                                                                        ϕ                      n                                        ⁢                                          f                      n                                                        >                  1                                                                                                                                                ϕ                      n                                        ⁢                                          f                      n                                                        ,                                                                              otherwise                  .                                                                                        (        1        )            where φ=min (ρt arg/ρ, φmax) and where a minimum fraction allowed fmin is used to prevent a switch from throttling all incoming traffic. The term ρt arg/ρ is referred to as the “occupancy value”.
Suppose a given switch is configured to have an occupancy threshold of 80%. This means that if the switch's processor begins to process voice calls at a calls/sec rate equal to, or greater than 80% of the switch's processing capability, then the switch will be in an overload condition.
Suppose further that during a “first” time interval a processor actually begins to process calls at a calls/second rate equal to 90% of the switch's processing capability putting the switch, in fact, into such an overload condition. Using Occupancy, during a “next” or “second” time interval the switch must reduce the level of traffic it will be willing to receive for processing by approximately 11%.
In Occupancy, a processor's occupancy at any given time cannot exceed 100%. This requirement inherently limits how fast an overload condition can be reduced or eliminated because the maximum fraction allowed, f can decrease by, at most, (1−ρt arg)100% between successive measurement times.
For example, if ρt arg=0.8, f can only decrease by 20% (at most) between measurement times. Hence, if the traffic (e.g., arriving signaling traffic) load is 200% of the engineered capacity then it will take 5 measurement intervals before the processor occupancy is brought below the threshold. Unfortunately, this implies that overload control based solely on Occupancy cannot react quickly to reduce an overload condition when such a condition is caused by sudden bursts of traffic.
Enter the techniques of the present invention. Not only are the techniques robust like Occupancy, but they are substantially faster in reducing or eliminating overload under different traffic conditions.
Accordingly, it is a desire of the present invention to provide fast and robust overload control techniques.